package com.lxs.common.validator;


import javax.validation.ConstraintValidator;
import javax.validation.ConstraintValidatorContext;
import java.util.HashSet;

public class ListValueConstraintValidator implements ConstraintValidator<ListValue, Integer> {
    private HashSet<Integer> set = new HashSet<>();
    /**
     * 初始化方法
     *举例：@ListValue ({0,1})
     * 获取0，1
     * @param constraintAnnotation
     */
    @Override
    public void initialize(ListValue constraintAnnotation) {
        int[] val = constraintAnnotation.val();
        for(int i=0;i<val.length;i++){
            set.add(val[i]);
        }
    }

    /**
     * 判断是否成功的方法
     * @param value 判断客户端传递的属性值是否包含在set集合中,如：0，1
     * @param context
     * @return
     */
    @Override
    public boolean isValid(Integer value, ConstraintValidatorContext context) {
        return set.contains(value);
    }
}
